<?php
class NoticiasController extends AppController{
	
	var $name = "Noticias";
	var $components = array('EmailSender');
	
	var $paginate = array(
        'limit' => 10,
        'order' => array(
            'Noticia.date_data' => 'desc'
        )
    );
    
	function beforeFilter(){
		$this->Auth->allow('index','showLateral', 'lerNoticia');
	}
    
    function index(){
    	$this->Noticia->recursive = 0;
		$this->set('noticias', $this->paginate());
    }
	
	function showLateral(){
		$this->Noticia->recursive = 0;
		return $this->paginate();
	}
	
	function lerNoticia($id = NULL){
		if (!$id) {
			$this->Session->setFlash(__('Desculpe, essa notícia não existe!', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('noticia', $this->Noticia->read(null, $id));
	}
	
	/************************ ADMINISTRADOR *********************************/
	
	function admin_index() {	
		$this->layout = 'admin';	
		$this->Noticia->recursive = 0;
		$this->set('noticias', $this->paginate());
	}

	function admin_view($id = null) {
		$this->layout = 'admin';
		if (!$id) {
			$this->Session->setFlash(__('Notícia inválida', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('noticia', $this->Noticia->read(null, $id));
	}

	function admin_add() {
		$this->layout = 'admin';
		if (!empty($this->data)) {
			$this->Noticia->create();
			if ($this->Noticia->save($this->data)) {
				$this->Session->setFlash(__('A notícia foi salva', true));
				if($this->data['Noticia']['email']){
					$this->loadModel('Assinante');
					$assinantes = $this->Assinante->find('all', array('conditions'=>array('ativo'=>1), 'fields'=>array('email','nome')));
					$this->EmailSender->smtpMessage();
					$this->EmailSender->from();
					$this->EmailSender->sendTo('SECSAP','no-reply@secsap.org.br');
					$this->EmailSender->bcc($assinantes);
					$this->EmailSender->assunto("SECSAP - ".$this->data['Noticia']['titulo']);
					$this->EmailSender->setLayout('noticia');
					$this->EmailSender->setTemplate('noticia');
					// variáveis a serem usadas
					$this->set('id', $this->Noticia->id);
					$this->set("dados", $this->data);
					$this->EmailSender->enviar();
				}
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('Notícia não salva! Por favor tente novamente!', true));
			}
		}
	}

	function admin_edit($id = null) {
		$this->layout = 'admin';
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Notícia inválida', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->Noticia->save($this->data)) {
				if($this->data['Noticia']['email']){
						$this->loadModel('Assinante');
						$assinantes = $this->Assinante->find('all', array('conditions'=>array('ativo'=>1), 'fields'=>array('email','nome')));
						$this->EmailSender->smtpMessage();
						$this->EmailSender->from();
						$this->EmailSender->sendTo('SECSAP','no-reply@secsap.org.br');
						$this->EmailSender->bcc($assinantes);
						$this->EmailSender->assunto("SECSAP - ".$this->data['Noticia']['titulo']);
						$this->EmailSender->setLayout('noticia');
						$this->EmailSender->setTemplate('noticia');
						// variáveis a serem usadas
						$this->set('id', $this->Noticia->id);
						$this->set("dados", $this->data);
						$this->EmailSender->enviar();
				}				
				$this->Session->setFlash(__('Notícia foi salva', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('Notícia não salva! Por favor tente novamente!', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Noticia->read(null, $id);
		}
	}

	function admin_delete($id = null) {
		$this->layout = 'admin';
		if (!$id) {
			$this->Session->setFlash(__('Notícia inválida', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Noticia->delete($id)) {
			$this->Session->setFlash(__('Notícia apagada', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Notícia não foi apagada! Por favor tente novamente!', true));
		$this->redirect(array('action' => 'index'));
	}
	
	
}